package com.faithbj.common.utils;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("systemConfigUtil")
public class SystemConfigUtil {

	// 货币种类（人民币、美元、欧元、英磅、加拿大元、澳元、卢布、港币、新台币、韩元、新加坡元、新西兰元、日元、马元、瑞士法郎、瑞典克朗、丹麦克朗、兹罗提、挪威克朗、福林、捷克克朗、葡币）
	public enum CurrencyType {
		CNY, USD, EUR, GBP, CAD, AUD, RUB, HKD, TWD, KRW, SGD, NZD, JPY, MYR, CHF, SEK, DKK, PLZ, NOK, HUF, CSK, MOP
	};

	// 小数位精确方式（四舍五入、向上取整、向下取整）
	public enum RoundType {
		roundHalfUp, roundUp, roundDown
	}

	// 库存预占时间点（下订单、订单付款、订单发货）
	public enum StoreFreezeTime {
		order, payment, ship
	}

	// 水印位置（无、左上、右上、居中、左下、右下）
	public enum WatermarkPosition {
		no, topLeft, topRight, center, bottomLeft, bottomRight
	}

	// 系统名称
	@Value("${systemName}")
	private String systemName;
	// 系统版本
	@Value("${systemVersion}")
	private String systemVersion;
	// 系统描述
	@Value("${systemDescription}")
	private String systemDescription;
	// 公司地址
	@Value("${address}")
	private String address;
	// 电话
	@Value("${phone}")
	private String phone;
	// 邮编
	@Value("${zipCode}")
	private String zipCode;
	// email
	@Value("${email}")
	private String email;
	// 备案信息
	@Value("${certtext}")
	private String certtext;
	// 上传照片大小限制，单位(M)兆
	@Value("${uploadLimit}")
	private Integer uploadLimit;
	// 是否启动自动锁定账号
	@Value("${isLoginFailureLock}")
	private Boolean isLoginFailureLock;
	// 连续登录失败最大次数
	@Value("${loginFailureLockCount}")
	private Integer loginFailureLockCount;
	// 自动解锁时间
	@Value("${loginFailureLockTime}")
	private Integer loginFailureLockTime;

	// 图片文件根路径
	@Value("${uploadImageDIR}")
	private String uploadImageDIR;

	// 水印图片文件路径
	@Value("${watermarkImagePath}")
	private String watermarkImagePath;
	// 水印图片位置
	@Value("${watermarkPosition}")
	private String watermarkPosition;
	// 水印图片透明度
	@Value("${watermarkAlpha}")
	private String watermarkAlpha;
	// 商品大图宽度
	@Value("${bigProductImageWidth}")
	private Integer bigProductImageWidth;
	// 商品大图高度
	@Value("${bigProductImageHeight}")
	private Integer bigProductImageHeight;
	// 商品小图宽度
	@Value("${smallProductImageWidth}")
	private Integer smallProductImageWidth;
	// 商品小图高度
	@Value("${smallProductImageHeight}")
	private Integer smallProductImageHeight;
	// 商品缩略小图宽度
	@Value("${thumbnailProductImageWidth}")
	private Integer thumbnailProductImageWidth;
	// 商品极缩略图高度
	@Value("${thumbnailProductImageHeight}")
	private Integer thumbnailProductImageHeight;
	// 默认大图片路径
	@Value("${defaultBigProductImagePath}")
	private String defaultBigProductImagePath;
	// 默认小图片路径
	@Value("${defaultSmallProductImagePath}")
	private String defaultSmallProductImagePath;
	// 允许上传的图片后缀
	@Value("${allowedUploadImageExtension}")
	private String allowedUploadImageExtension;
	// 允许上传的多媒体后缀
	@Value("${allowedUploadMediaExtension}")
	private String allowedUploadMediaExtension;
	// 允许上传的文件后缀
	@Value("${allowedUploadFileExtension}")
	private String allowedUploadFileExtension;
	// smtpFrom邮件
	@Value("${smtpFromMail}")
	private String smtpFromMail;
	// smtpHost
	@Value("${smtpHost}")
	private String smtpHost;
	// smtpHost
	@Value("${smtpPort}")
	private String smtpPort;
	// smtpUsername
	@Value("${smtpUsername}")
	private String smtpUsername;
	// smtpPassword
	@Value("${smtpPassword}")
	private String smtpPassword;

	//查询统计中，默认的查询区间天数
	@Value("${diffDays}")
	private String diffDays;
	
	//查询统计中，几个状态的规定处理时间
	@Value("${state1ProcessDays}")
	private String state1ProcessDays;
	@Value("${state2ProcessDays}")
	private String state2ProcessDays;
	@Value("${state3ProcessDays}")
	private String state3ProcessDays;
	@Value("${state4ProcessDays}")
	private String state4ProcessDays;
	@Value("${state5ProcessDays}")
	private String state5ProcessDays;
	@Value("${state6ProcessDays}")
	private String state6ProcessDays;
	@Value("${state7ProcessDays}")
	private String state7ProcessDays;
	@Value("${state8ProcessDays}")
	private String state8ProcessDays;
	@Value("${state9ProcessDays}")
	private String state9ProcessDays;
	@Value("${state10ProcessDays}")
	private String state10ProcessDays;
	
/********* 条形码配置 *************/
	/**
	 * 分辨率
	 */
	@Value("${resText}")
	private Integer resText;	

	/**
	 * 刷新系统配置信息
	 * 
	 */
	public void flush() {
		// OsCacheConfigUtil.flushEntry(SYSTEM_CONFIG_CACHE_KEY);
	}

	public String getSystemName() {
		return systemName;
	}

	public void setSystemName(String systemName) {
		this.systemName = systemName;
	}

	public String getSystemVersion() {
		return systemVersion;
	}

	public void setSystemVersion(String systemVersion) {
		this.systemVersion = systemVersion;
	}

	public String getSystemDescription() {
		return systemDescription;
	}

	public void setSystemDescription(String systemDescription) {
		this.systemDescription = systemDescription;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getZipCode() {
		return zipCode;
	}

	public void setZipCode(String zipCode) {
		this.zipCode = zipCode;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getCerttext() {
		return certtext;
	}

	public void setCerttext(String certtext) {
		this.certtext = certtext;
	}

	public Integer getUploadLimit() {
		return uploadLimit;
	}

	public void setUploadLimit(Integer uploadLimit) {
		this.uploadLimit = uploadLimit;
	}

	public Boolean getIsLoginFailureLock() {
		return isLoginFailureLock;
	}

	public void setIsLoginFailureLock(Boolean isLoginFailureLock) {
		this.isLoginFailureLock = isLoginFailureLock;
	}

	public Integer getLoginFailureLockCount() {
		return loginFailureLockCount;
	}

	public void setLoginFailureLockCount(Integer loginFailureLockCount) {
		this.loginFailureLockCount = loginFailureLockCount;
	}

	public Integer getLoginFailureLockTime() {
		return loginFailureLockTime;
	}

	public void setLoginFailureLockTime(Integer loginFailureLockTime) {
		this.loginFailureLockTime = loginFailureLockTime;
	}

	public String getWatermarkImagePath() {
		return watermarkImagePath;
	}

	public void setWatermarkImagePath(String watermarkImagePath) {
		this.watermarkImagePath = watermarkImagePath;
	}

	public String getWatermarkPosition() {
		return watermarkPosition;
	}

	public void setWatermarkPosition(String watermarkPosition) {
		this.watermarkPosition = watermarkPosition;
	}

	public String getWatermarkAlpha() {
		return watermarkAlpha;
	}

	public void setWatermarkAlpha(String watermarkAlpha) {
		this.watermarkAlpha = watermarkAlpha;
	}

	public Integer getBigProductImageWidth() {
		return bigProductImageWidth;
	}

	public void setBigProductImageWidth(Integer bigProductImageWidth) {
		this.bigProductImageWidth = bigProductImageWidth;
	}

	public Integer getBigProductImageHeight() {
		return bigProductImageHeight;
	}

	public void setBigProductImageHeight(Integer bigProductImageHeight) {
		this.bigProductImageHeight = bigProductImageHeight;
	}

	public Integer getSmallProductImageWidth() {
		return smallProductImageWidth;
	}

	public void setSmallProductImageWidth(Integer smallProductImageWidth) {
		this.smallProductImageWidth = smallProductImageWidth;
	}

	public Integer getSmallProductImageHeight() {
		return smallProductImageHeight;
	}

	public void setSmallProductImageHeight(Integer smallProductImageHeight) {
		this.smallProductImageHeight = smallProductImageHeight;
	}

	public Integer getThumbnailProductImageWidth() {
		return thumbnailProductImageWidth;
	}

	public void setThumbnailProductImageWidth(Integer thumbnailProductImageWidth) {
		this.thumbnailProductImageWidth = thumbnailProductImageWidth;
	}

	public Integer getThumbnailProductImageHeight() {
		return thumbnailProductImageHeight;
	}

	public void setThumbnailProductImageHeight(
			Integer thumbnailProductImageHeight) {
		this.thumbnailProductImageHeight = thumbnailProductImageHeight;
	}

	public String getDefaultBigProductImagePath() {
		return defaultBigProductImagePath;
	}

	public void setDefaultBigProductImagePath(String defaultBigProductImagePath) {
		this.defaultBigProductImagePath = defaultBigProductImagePath;
	}

	public String getDefaultSmallProductImagePath() {
		return defaultSmallProductImagePath;
	}

	public void setDefaultSmallProductImagePath(
			String defaultSmallProductImagePath) {
		this.defaultSmallProductImagePath = defaultSmallProductImagePath;
	}

	public String getAllowedUploadImageExtension() {
		return allowedUploadImageExtension;
	}

	public void setAllowedUploadImageExtension(
			String allowedUploadImageExtension) {
		this.allowedUploadImageExtension = allowedUploadImageExtension;
	}

	public String getAllowedUploadMediaExtension() {
		return allowedUploadMediaExtension;
	}

	public void setAllowedUploadMediaExtension(
			String allowedUploadMediaExtension) {
		this.allowedUploadMediaExtension = allowedUploadMediaExtension;
	}

	public String getAllowedUploadFileExtension() {
		return allowedUploadFileExtension;
	}

	public void setAllowedUploadFileExtension(String allowedUploadFileExtension) {
		this.allowedUploadFileExtension = allowedUploadFileExtension;
	}

	public String getSmtpFromMail() {
		return smtpFromMail;
	}

	public void setSmtpFromMail(String smtpFromMail) {
		this.smtpFromMail = smtpFromMail;
	}

	public String getSmtpHost() {
		return smtpHost;
	}

	public void setSmtpHost(String smtpHost) {
		this.smtpHost = smtpHost;
	}

	public String getSmtpPort() {
		return smtpPort;
	}

	public void setSmtpPort(String smtpPort) {
		this.smtpPort = smtpPort;
	}

	public String getSmtpUsername() {
		return smtpUsername;
	}

	public void setSmtpUsername(String smtpUsername) {
		this.smtpUsername = smtpUsername;
	}

	public String getSmtpPassword() {
		return smtpPassword;
	}

	public void setSmtpPassword(String smtpPassword) {
		this.smtpPassword = smtpPassword;
	}

	public String getUploadImageDIR() {
		return uploadImageDIR;
	}

	public void setUploadImageDIR(String uploadImageDIR) {
		this.uploadImageDIR = uploadImageDIR;
	}

	public String getDiffDays() {
		return diffDays;
	}

	public void setDiffDays(String diffDays) {
		this.diffDays = diffDays;
	}

	public Integer getResText() {
		return resText;
	}

	public void setResText(Integer resText) {
		this.resText = resText;
	}

	public String getState1ProcessDays() {
		return state1ProcessDays;
	}

	public void setState1ProcessDays(String state1ProcessDays) {
		this.state1ProcessDays = state1ProcessDays;
	}

	public String getState2ProcessDays() {
		return state2ProcessDays;
	}

	public void setState2ProcessDays(String state2ProcessDays) {
		this.state2ProcessDays = state2ProcessDays;
	}

	public String getState3ProcessDays() {
		return state3ProcessDays;
	}

	public void setState3ProcessDays(String state3ProcessDays) {
		this.state3ProcessDays = state3ProcessDays;
	}

	public String getState4ProcessDays() {
		return state4ProcessDays;
	}

	public void setState4ProcessDays(String state4ProcessDays) {
		this.state4ProcessDays = state4ProcessDays;
	}

	public String getState5ProcessDays() {
		return state5ProcessDays;
	}

	public void setState5ProcessDays(String state5ProcessDays) {
		this.state5ProcessDays = state5ProcessDays;
	}

	public String getState6ProcessDays() {
		return state6ProcessDays;
	}

	public void setState6ProcessDays(String state6ProcessDays) {
		this.state6ProcessDays = state6ProcessDays;
	}

	public String getState7ProcessDays() {
		return state7ProcessDays;
	}

	public void setState7ProcessDays(String state7ProcessDays) {
		this.state7ProcessDays = state7ProcessDays;
	}

	public String getState8ProcessDays() {
		return state8ProcessDays;
	}

	public void setState8ProcessDays(String state8ProcessDays) {
		this.state8ProcessDays = state8ProcessDays;
	}

	public String getState9ProcessDays() {
		return state9ProcessDays;
	}

	public void setState9ProcessDays(String state9ProcessDays) {
		this.state9ProcessDays = state9ProcessDays;
	}

	public String getState10ProcessDays() {
		return state10ProcessDays;
	}

	public void setState10ProcessDays(String state10ProcessDays) {
		this.state10ProcessDays = state10ProcessDays;
	}

	
}
